#ifndef _FMETRICSFREETYPE_H_
#define _FMETRICSFREETYPE_H_

#include "FMetrics.h"

namespace Font
{

	class MetricsFreeType : public Metrics
	{
	
	public:
	
		MetricsFreeType(Library* a_Library, Loader* a_Loader, Family* a_Family, FT_Face a_Face);
		MetricsFreeType(Library* a_Library, Loader* a_Loader, Family* a_Family, unsigned int a_Style, CharMap* a_Map);
		~MetricsFreeType();
	
		FaceHandle* CreateFace(unsigned int a_Size, unsigned int a_Options = 0, CharMap* a_Map = NULL);

	protected:

		FT_Face m_Face;
		FT_Render_Mode m_Quality;
		float m_Transform[4];

		struct Range
		{
			unsigned int start, end;
		};
		std::vector<Range*> m_Ranges;

		std::vector<FT_ULong> m_CharCodes;
	
	}; // class MetricsFreeType

}; // namespace Font
	
#endif